package org.programmers.anonymous.fightrobots.model;

import org.programmers.anonymous.fightrobots.model.IRobot.Action;


public interface IFight
{
	/**
	 * Returns the active robot in the Fight, who starts the fight. The point of view is centered in the Active robot.
	 * @return the active robot object
	 */
	public IRobot getActiveRobot();
	
	/**
	 * Returns the passive robot in the Fight
	 * @return the passive robot object
	 */
	public IRobot getPassiveRobot();
	
	/**
	 * Set the active robot in the Fight, who starts the fight.
	 */
	public void setActiveRobot(IRobot activeRobot);
	
	/**
	 * Set the passive robot in the Fight
	 */
	public void setPassiveRobot(IRobot passiveRobot);
	
	/**
	 * Execute the algorithm of action associated and change the status of the robot if is required (DEAD)
	 * @param remoteAction - Action of the remote robot (ATTACK or DEFFENSE)
	 * @param remoteActionValue - Equipement's value of the remote robot, weapon or deffense
	 * @param remoteEquipementId - Equipement's id of the remote robot, weapon or deffense
	 * @param localRobot - Object robot who are executing the action
	 */
	public void executeAction(Action remoteAction, int remoteActionValue, int remoteEquipementId, IRobot localRobot);
}
